<?php
/**
 * トランスフォーマクラスファイル
 *
 */
/**
 * トランスフォーマクラス
 *
 * XSLTProcessorでXML文書構造を変形させる
 *
 */
class Transformer {
	/**
	 * スタイルシートDOMドキュメント
	 *
	 * @var DOMDocument
	 */
	protected $xsl = null;
	/**
	 * XSLTProcessor
	 *
	 * @var XSLTProcessor
	 */
	protected $XSLTProc = null;
	/**
	 * コンストラクタ
	 *
	 * @param string $fileName XSLファイル名
	 */
	public function __construct($fileName) {
		$this->xsl = new DOMDocument();
		$this->xsl->load(VISION_APP_PATH.'xsl/'.$fileName);
		$this->XSLTProc = new XSLTProcessor();
		$this->XSLTProc->importStylesheet($this->xsl);
	}
	/**
	 * 変形を実行する(SimpleXMLElementで返す場合)
	 *
	 * @param SimpleXMLElement $src  変形対象のエレメント
	 * @param SimpleXMLElement $dest 変形後のデータを追加するエレメント
	 */
	public function execute($src, $dest) {
		$xml = dom_import_simplexml($src);
		return sxml_append($dest, simplexml_import_dom($this->XSLTProc->transformToDoc($xml)));
	}
}
